import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router';
// LocationQueryRaw
// import Login from './modules/login';
import NProgress from 'nprogress'; // progress bar
// import { ElMessage } from 'element-plus';
import 'nprogress/nprogress.css';
// import PageLayout from '@/components/index.vue';
// import appRoutes from './modules';
// import { ACCESS_TOKEN_KEY } from '@/core/cacheEnum';
// import { localGet } from '@/utils';
// import { UseruStore } from '@/store/modules/user/user';
//取消圆环进度条
NProgress.configure({ showSpinner: false });

const routes: Array<RouteRecordRaw> = [
  // {
  //   path: '/',
  //   redirect: 'login',
  // },
  // Login,
  // {
  //   name: 'root',
  //   path: '/',
  //   component: PageLayout,
  //   children: appRoutes,
  // },
  {
    path: '/command-pages',
    name: 'commandPages',
    meta: {
      title: '权限管理',
    },
    component: () => import('@/pages/permissions/views/commandPages/index.vue'),
  },
];

const router = createRouter({
  history: createWebHashHistory(),
  routes,
});
// const Store = Storage.get(ACCESS_TOKEN_KEY); // 本地缓存 不知道为什么使用这个会出bug
router.beforeEach(async (to, from, next) => {
  document.title = to.meta.title as string;
  NProgress.start();
  next();
  // if (to.name === 'login') {
  //   NProgress.done();
  //   next();
  //   return;
  // } else {
  //   if (!localGet(ACCESS_TOKEN_KEY)) {
  //     NProgress.done();
  //     /**
  //      * 没有token 重定向Login 向query输出redirect:to.name
  //      * 当是在login页面的时候 to.name 指向下一级路由
  //      */
  //     next({
  //       name: 'login',
  //       query: {
  //         redirect: to.name,
  //         ...to.query,
  //       } as LocationQueryRaw,
  //     });
  //     ElMessage.error('错误，请登录重试！');
  //     return;
  //   } else {
  //     NProgress.done();
  //     const userStore = UseruStore();
  //     /**
  //      * pinia 中在哪儿 在哪儿使用 就在上级定义
  //      * 在全局store还没有挂载到app上的时候，就引入进来了，这时候里面useStore在全局代码下就调用了，这样导致了pinia实例还没挂载。
  //      所以不能在全局下调用store = useStore();
  //      */
  //     await userStore.afterLogin();
  //     next();
  //     return;
  //   }
  // }
});
router.afterEach(() => {
  NProgress.done();
});

export default router;
